<template>

    <el-dialog
            top="20px"
            :title="defaultValue.title"
            :visible="tableConfig.show"
            @close="tableConfig.show = false"
            :show-close="tableConfig.showClose"
            :destroy-on-close="tableConfig.destroyOnClose"
            width="1100px">

        <el-tabs v-model="elTab.activeName" type="card">

          <el-tab-pane label="基础" name="home">

            <el-row :gutter="0" style="display: flex">

              <el-col :span="3" >
                <div class="imgBox">
                  <el-image class="icoHeadUserImage" fit="contain" :src="obj.icoUrl || require('@/assets/images/ico/tool.png')" />
                </div>
              </el-col>

              <!--图片-->
              <el-col :span="21">
                <el-descriptions class="margin-top" title=""  :column="2" :size="size" :contentStyle="CS" :label-style="LS" border>

                  <el-descriptions-item label="工具名称">{{obj.name}}</el-descriptions-item>
                  <el-descriptions-item label="工具类型">
                    <el-tag size="mini" v-if="obj.type === 1">项目管理</el-tag>
                    <el-tag size="mini" type="success" v-else-if="obj.type === 2">代码管理</el-tag>
                    <el-tag size="mini" type="info" v-else-if="obj.type === 9">其他</el-tag>
                  </el-descriptions-item>
                  <el-descriptions-item label="维护人">{{obj.directorName}}</el-descriptions-item>

                </el-descriptions>
              </el-col>
            </el-row>

            <el-row style="">
              <el-col :span="24">
                <el-descriptions class="margin-top" title=""  :column="1" :size="size" :contentStyle="CS" :label-style="LS" border>

                  <el-descriptions-item label="官网链接">{{obj.officialWebUrl}}</el-descriptions-item>
                  <el-descriptions-item label="简介">{{obj.briefIntroduction}}</el-descriptions-item>
                  <el-descriptions-item label="备注">{{obj.description}}</el-descriptions-item>


                  <!-- <el-descriptions-item label="出现频率">-->
                  <!--    <el-tag size="mini" v-if="formOpsAppProblem.frequency === 1">低</el-tag>-->
                  <!-- </el-descriptions-item> -->
                </el-descriptions>
              </el-col>
            </el-row>

          </el-tab-pane>


          <el-tab-pane label="安装方式" name="installDoc">
            <div style="min-height: 500px; max-height: 700px; overflow-y: auto; margin-bottom: 20px">
              <el-divider content-position="left"><span style="color: coral">安装文档</span></el-divider>
              <!--md预览展示-->
              <mavon-editor v-model="obj.installDoc" style="font-size: 14px" :subfield="false" :defaultOpen="'preview'" :editable="false" :toolbarsFlag="false" />
            </div>
          </el-tab-pane>

        </el-tabs>





        <span slot="footer" class="dialog-footer">
            <el-button plain type="primary" @click="tableConfig.show = false">关闭</el-button>
        </span>

    </el-dialog>

</template>

<script>

import {getFullDate, getFullTime} from "@/utils/utils";
import http from '@/utils/http'

export default {
  name: "OpsToolDetailed",
  data(){
    return {
      // 默认值，进入页面后的值
      defaultValue: {
        // 弹出框标题
        title: '详情',
      },
      // 标签页信息
      elTab:{
        // 被选中的标签
        activeName: 'home',
      },
      // 表格的默认值
      tableConfig: {
        // 关闭时销毁 Dialog 中的元素
        destroyOnClose: false,
        // 弹出框是否打开
        show: false,
        // 是否显示关闭按钮
        showClose: true,
      },
      // 列表的尺寸
      size: 'small',
      // tag的大小
      mini: 'mini',
      // tag 的大小
      tagSize: 'small',
      // 展示的数据
      obj: {
        id: null,
        name: null,
        version: null,
        url: null,
        type: null,
        officialWebUrl: null,
        installPath: null,
        briefIntroduction: null,
        installDoc: null,
        directorName: null,
        description: null,
        updateTime: null,
        updateId: null,
        createTime: null,
        createId: null,
        delType: null,
      },
      // 描述列表的css
      CS: {
        // 'text-align': 'center',  //文本居中
        'min-width': '250px',   //最小宽度
        'word-break': 'break-all'  //过长时自动换行
      },
      // 描述列表的css
      LS: {
        // 'color': '#000',
        // 'text-align': 'center',
        'font-weight': '600',
        // 'height': '40px',
        // 'background-color': 'rgba(255, 97, 2, 0.1)',
        'min-width': '110px',
        'word-break': 'keep-all'
      },
    }
  },
  methods: {
    /**
     * 渲染图片
     * 只能这样做，图片这里不支持非固定地址返回
     * @param item 目标数据
     */
    getImageUrlInfo(item) {
      if (!item || !item.ico || item.ico === 'null') {
        // 判空或无效，直接显示默认图
        this.$set(item, 'icoUrl', null);
        return;
      }

      http.getImageUrl(item.ico)
        .then(url => {
          // 异步赋值，触发响应式更新
          this.$set(item, 'icoUrl', url);
        })
        .catch(() => {
          // 下载失败 fallback 默认图
          this.$set(item, 'icoUrl', null);
        });
    },
    /**
     * 打开弹出框
     * @param obj 人员信息
     */
    init(obj){
      this.obj = obj
      this.getImageUrlInfo(this.obj)
      this.tableConfig.show = true
    },
    /**
     * 转换时间戳为时间格式
     */
    getTime(item){
      return getFullTime(item)
    },
    /**
     * 时间转日期
     * @param item 要转换的时间戳
     * @return {string}
     */
    getFullDate(item){
      return getFullDate(item)
    },
  },
}
</script>

<style scoped>

.imgBox {
  border: 1px solid #ebeef5;
  /*左边框样式，这里设置为无*/
  border-right: none;
  width: 100%;
  height: 100%;
  /*相对定位*/
  position: relative;
}


/*头像的样式*/
.imgBox .icoHeadUserImage{
  width: 120px;
  height: 120px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%);
  max-height: 100%;
  margin-left: -65px;
  padding: 5px;
}

</style>


